Il Interfaccia per il calcolo eterogeneo portabile (HIP) fornisce un'API di runtime C++ che astrae i livelli hardware per offrire un codice unificato sia per GPU NVIDIA che AMD. Questo approccio elimina il blocco del fornitore riproducendo l'ambiente CUDA mentre si punta al ROCm back-end.
1. Configurazione dell'ambiente
L'inizializzazione inizia con la definizione delle variabili d'ambiente per puntare il compilatore hipcc al toolchain corretto:
$ export PATH=$PATH:[MYHIP]/bin
2. Standardizzazione dello strumentario
Il hipcc compilatore agisce come un wrapper intelligente. Per l'automazione della costruzione, la logica HIP_PATH ?= $(shell hipconfig --path) assicura che il tuo Makefile trovi dinamicamente l'installazione di HIP indipendentemente dalla configurazione del sistema.
3. Logica della versione
HIP utilizza una formula deterministica per la versione per gestire in modo programmatico la disponibilità delle funzionalità attraverso le varie release:
$$\text{HIP\_VERSION} = \text{HIP\_VERSION\_MAJOR} \times 10^7 + \text{HIP\_VERSION\_MINOR} \times 10^5 + \text{HIP\_VERSION\_PATCH}$$
4. Equivalenti di runtime principali
HIP fornisce hipMalloc e hipLaunchKernel come specchi funzionali delle chiamate di memoria ed esecuzione di CUDA, abilitando una filosofia di sviluppo "single-source".